Queue management system

ABSTRACT

A system includes a memory and a queue manager that maintains a virtual queue in the memory for a consumable event. The virtual queue defines a current order of a plurality of a first class of agents for the consumable event. The queue manager is configured to summon one or more agents of the plurality of the first class of agents to the consumable event, and output an instruction to one or more agents of a plurality of a second class of agents configured to perform one or more actions related to the consumable event, wherein the queue manager is configured to communicate with a plurality of mobile devices, each mobile device of the plurality of mobile devices associated with an agent of the plurality of the first class of agents and to communicate with the plurality of the second class of agents.

CROSS-REFERENCE TO RELATED APPLICATION

This Divisional application claims the benefit of priority from U.S.patent application Ser. No. 16/441,708 filed Jun. 14, 2019, and entitledQUEUE MANAGEMENT SYSTEM, which is incorporated herein by reference inits entirety.

FIELD

The present application relates to a queue management system and a queuemanagement method.

BACKGROUND

As new and popular events or attractions draw large crowds of attendees,venue management of venues hosting the events or attractions may learnthat attendees are dissatisfied with the way in which the venuemanagement handles how the events or attractions are queued for andaccessed. For example, event attendees may express dissatisfaction withqueue times and being forced to remain in a physical line or queue forextended lengths of time in order to access the event or attraction. Atvenues where attendees may join a virtual queue that allows attendees toreserve a relative position in the queue and remain in the queue for anevent without needing to physically stay in a line of people in order tomaintain that relative position in the queue, attendees may bedissatisfied or otherwise frustrated when they miss their window ofopportunity to access a first event due to being preoccupied withsomething else that may require their attention or because they mustleave a second activity that they have commenced while waiting theirturn for the first event so as to avoid missing their place in the firstqueue. Attendees may also experience dissatisfaction or frustration whentheir time to engage in the activity arises, but the activity is toocrowded to appreciate. Other inefficiencies with physical and virtualqueues may also cause attendee dissatisfaction, such as increased waittimes, being required to carry a device such as a pager that indicatesto them that their position is not available, having to constantly checkmonitors for the number or code they have been allocated by a queuemanagement system, or being required to stay within a very smallproximate area to the queued event even through the expected wait timesare quite lengthy.

In another example, large resorts may have buses or other transitavailable to transport guests to and from different facilities,activities, and events either within or external to the resort. Asguests may wish to engage in a large number of activities such asplaying golf, going parasailing, going to local tourist attractions, orgoing to restaurants, guests may need to catch a number of buses tothese activities. Bus or other transit systems are typically set up suchthat guests must wait at a bus stop in order to get a bus that runs on afixed schedule, but at times these buses may leave a stop empty or atcapacity, wasting resources and the time of guests that must wait foranother bus.

Thus, there is a need for a system that improves at least one ofattendee or guest satisfaction, throughput of attendees or gueststhrough events, utilisation of the events, and/or reduces the amount oftime an attendee or guest needs to access the event.

SUMMARY OF THE INVENTION

An embodiment of the present invention provides a system that comprises:a memory; and a queue manager that maintains a virtual queue in thememory for a consumable event, the virtual queue defining a currentorder of a plurality of agents, and summons one or more agents of theplurality of agents to the consumable event, wherein the queue manageris configured to communicate with a plurality of mobile devices, eachmobile device of the plurality of mobile devices associated with anagent of the plurality of agents, wherein the queue manager communicateswith each mobile device in order to monitor the associated agent, andwherein the queue manager is configured to dynamically determine when tosummon one or more agents of the plurality of agents in the virtualqueue to the consumable event based on the monitoring of the pluralityof agents.

Another embodiment of the present invention provides a system thatcomprises: a memory; and a queue manager that maintains a virtual queuein the memory for a consumable event, the virtual queue defining acurrent order of a plurality of a first class of agents for the one theconsumable event, the queue manager configured to summon one or moreagents of the plurality of the first class of agents to the consumableevent, and output an instruction to one or more agents of a plurality ofa second class of agents configured to perform one or more actionsrelated to the consumable event, wherein the queue manager is configuredto communicate with a plurality of mobile devices, each mobile device ofthe plurality of mobile devices associated with an agent of theplurality of the first class of agents and to communicate with theplurality of the second class of agents, wherein the queue managercommunicates with each mobile device in order to monitor the associatedagent of the plurality of the first class of agents and the queuemanager communicates with each agent of the plurality of the secondclass of agents in order to monitor the plurality of the second class ofagents, wherein the queue manager is configured to dynamically determinewhen to output an instruction to one or more agents of the plurality ofthe second class of agents to perform the one or more actions based onthe monitoring of the plurality of the first class of agents and themonitoring of the plurality of the second class of agents.

Another embodiment of the present invention provides a system thatcomprises: a memory; and a queue manager that maintains a virtual queuein the memory for a consumable event, the virtual queue defining acurrent order of a plurality of a first class of agents, the queuemanager configured to summon one or more agents of the plurality of thefirst class of agents to the consumable event, and summon one or moreagents of a plurality of a second class of agents to the consumableevent, the second class of agents being configured for performing anaction related to the consumable event, wherein the queue manager isconfigured to communicate with a plurality of mobile devices, eachmobile device of the plurality of mobile devices associated with anagent of the plurality of the first class of agents and to communicatewith the plurality of the second class of agents, wherein the queuemanager communicates with each mobile device in order to monitor theassociated agent of the plurality of the first class of agents and thequeue manager communicates with each agent of the plurality of thesecond class of agents in order to monitor the plurality of the secondclass of agents, wherein the queue manager is configured to dynamicallydetermine when to summon one or more agents of the plurality of thesecond class of agents to the consumable event based on the monitoringof the plurality of the first class of agents, the monitoring of theplurality of the second class of agents.

Another embodiment of the present invention provides a method thatcomprises: maintaining, by a queue manager, a virtual queue, in amemory, for a consumable event, the virtual queue defining a currentorder of a plurality of agents; communicating, by the queue manager,with a plurality of mobile devices, each mobile device of the pluralityof mobile devices associated with an agent of the plurality of agents,in order to monitor the associated agent; and dynamically determining,by the queue manager when to summon one or more agents of the pluralityof agents in the virtual queue to the consumable event based on themonitoring of the plurality of agents.

Another embodiment of the present invention provides a method thatcomprises: maintaining, by a queue manager, a virtual queue, in amemory, for a consumable event, the virtual queue defining a currentorder of a plurality of a first class of agents; communicating, by thequeue manager, with a plurality of mobile devices, each mobile device ofthe plurality of mobile devices associated with an agent of theplurality of the first class of agents, in order to monitor theplurality of the first class of agents; communicating, by the queuemanager, with each agent of a plurality of a second class of agents inorder to monitor the plurality of the second class of agents; anddynamically determining, by the queue manager, when to instruct one ormore agents of the plurality of the second class of agents to performone or more actions related to the consumable event based on themonitoring of the plurality of the first class of agents and themonitoring of the plurality of the second class of agents.

Another embodiment of the present invention provides a method thatcomprises: maintaining, by a queue manager, a virtual queue, in amemory, for a consumable event, the virtual queue defining a currentorder of a plurality of a first class of agents; communicating, by thequeue manager, with a plurality of mobile devices, each mobile device ofthe plurality of mobile devices associated with an agent of theplurality of the first class of agents, in order to monitor theplurality of the first class of agents; communicating, by the queuemanager, with each agent of a plurality of a second class of agents inorder to monitor the plurality of the second class of agents, the secondclass of agents being for performing an action related to the consumableevent; and dynamically determining, by the queue manager, when to summonone or more agents of the plurality of the second class of agents to theconsumable event based on the monitoring of the plurality of the firstclass of agents and the monitoring of the plurality of the second classof agents.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments of the present invention are described withreference to the following drawings:

FIG. 1 shows an example of a system for dynamically updating a virtualqueue and summoning agents to a consumable event.

FIG. 2 shows an example of a venue.

FIG. 3 shows an example of a dynamic queue model.

FIG. 4A shows an example of using a dynamic slotted queue model.

FIG. 4B shows further steps of the example of using the dynamic slottedqueue model from FIG. 4A.

FIG. 4C shows another example of using the dynamic slotted queue model.

FIG. 4D shows further steps of the example of using the dynamic slottedqueue model from FIG. 4C.

FIG. 4E shows further steps of the example of using the dynamic slottedqueue model from FIG. 4D.

FIG. 5 shows an example of a method according to an embodiment of thepresent invention.

FIG. 6 shows an example of another method according to an embodiment ofthe present invention.

FIG. 7 shows an example of yet another method according to an embodimentof the present invention.

FIG. 8 shows a graph with simplified examples of likelihood of arrivingsoon functions.

DETAILED DESCRIPTION

Embodiments of the invention provide a system that enable people to joina virtual queue for events or activities. The system is configured tomonitor people in the queue and summons them to the events or activitiesat appropriate times derived from that monitoring and other information.A person or group of people entering a venue utilising the system mayopt to join a virtual queue for one or more events or activities in anyof a variety of ways including a mobile device application, a website, akiosk, or through various ticket purchasing applications or systems. Inone example, the system monitors factors such as the person's location,whether they are active on their mobile device, with what applicationsor content they are interacting with on their mobile device, and howthey are engaging with other parts of the venue or with other activitiesand locations in order to dynamically update the virtual queue anddecide when to summon people to the event or activity. The system aimsto increase the throughput of visitors through the event or activity,the utilisation of the event or activity, and the satisfaction of thepeople attending the event or activity.

In other embodiments the system is used to in order to determine whenpeople or devices ancillary to the event should be deployed and tocontrol their deployment. For example, bus drivers, cleaning personnel,vehicles such as buses, and cleaning robots can be summoned to performan action in relation to an event or activity such that their deploymentmay also help increase the throughput of visitors through the event oractivity, the utilisation of the event or activity, and the satisfactionof the people attending the event or activity. These people and devicesmay be summoned to perform actions based on dynamic parameters of thevirtual queue. For example, people or devices may take advantage ofspace or an opening in an event when an invited guest does not arrive atthe event.

Before describing the operation of the system, an overview of somecomponents and concepts is provided to facilitate understanding of thesystem.

Queue Manager

The queue manager is responsible for dynamically determining when tosummon an agent to a consumable event to seek to achieve optimalthroughput of agents through a consumable event, optimal utilisation ofthe event and event space, optimal satisfaction and experience foragents, and minimal agent time loss when waiting to access theconsumable event. As a result of this optimisation process, the queuemanager reduces consumable event wait times. When a person joins avirtual queue for a consumable event, the person becomes an agent.Virtual queues are stored in memory, and the queue manager accesses thememory and tracks the progress of each agent through the virtual queues,the physical queues, and ultimately the consumable events. The queuemanager may receive data from one or more sources including, but notlimited to, agent mobile devices, consumable events, venues, queuemanagers of other venues, consumable event or venue ticketing systems,meteorology systems, traffic systems, public transport systems,restaurant point of sales or other kitchen management systems, buildingsecurity systems, door access systems, and booking systems, in order todetermine a time at which to summon an agent to a consumable event. Thequeue manager may communicate with the one or more data sources throughone or more of Wi-Fi connections, cellular and mobile serviceconnections, cloud communication connections, hive/swarm inter-deviceconnections, and any other communication methods. The queue manager isable to utilise layout information representing the physical layout andarchitectural floor plan of a venue, the grounds of the venue, and theproximate area or town, the consumable events, and events and activitiesthat do not require queueing for within the venue, then take thisinformation into account when monitoring agents and determining at whattime to summon one or more agents. When monitoring agents, the queuemanager may also utilise data regarding the actual or expected number ofagents participating in consumable events or events and activities thatdo not require queueing for and data regarding the impact that theseagents and events have on others when determining at what time to summonone or more agents. Layout information may also include anticipatedtravel times between locations. The queue manager may utilise one ormore Agent Scores and/or machine learning to seek to determine whenwould be the optimal time to summon an agent to a consumable event.

Consumable Event

A consumable event is any activity that an agent may partake in that maybe queued for. Examples of consumable events include but are not limitedto types of exhibits or activities at a museum, activities at a resort,shops or activities in a shopping centre, rides or attractions at anamusement or theme park, methods of transport such as boats or othervehicles, and table or entry availabilities at cafés, bars, nightclubs,or restaurants. In this way, consumable events may include events ofvarious types such as table bookings, experience entries, seatutilisations, or other accesses to a space or area. Some consumableevents may require purchasing a ticket in order to consume the event,while others may simply require that agents make their intention toconsume an event known in any of a variety of ways such as by joining aqueue. Some consumable events may be limited in time such that agentswishing to consume the event must do so within a prescribed period oftime.

Venue

A venue is any area or space where one or more consumable events arehosted and take place. Examples of venues may include but are notlimited to museums, resorts, shopping centres or malls, amusement ortheme parks, and cafés, bars, or restaurants. A venue may also have anynumber of events or activities that do not require queueing for takeplace. Additionally, a venue may have indoor and outdoor areas withconsumable events taking place in either space. A venue also need not belimited to just one physical location. For example, a museum's car parkor parking lot that has a bus or tram terminal that allows for agents tobe transported to a museum facility further up a mountain and the museumfacility further up the mountain may be considered to be parts of thesame venue. In some cases, a venue may also refer to a vehicle withlimited riding capacity.

Agent

A first type or class of agent is a person or a group of people that hasexpressed an interest in partaking in a consumable event by joining avirtual queue for the event.

A second type or class of agent is a human or a non-human entity thatperforms actions related to the consumable event or events as directedby the system. For example, these actions may be to support theparticipation of the first class of agent in the consumable event or tosupport the continued running of the consumable event. This second classof agent may be, for example, a cleaning personnel, a bus driver, or oneor more automated vehicles or robots. For the sake of clarity, whenreferring to agents, this disclosure refers to the first class of agentsunless otherwise noted.

Additionally, the system may detect people that have not expressed aninterest in partaking in a consumable event by joining a virtual queuefor the event such as people visiting a museum to browse galleries andexhibits that do not specifically require their own queue. The systemmay detect or infer the presence of such people because the system mayobtain venue entry ticket data from a venue ticketing system, presenceor location data from mobile devices of the people when the people havea relevant application running on their mobile device, or when thepeople are detectable by a location beacon within a venue, or whenpeople are connected to a venue's Wi-Fi, or computer vision data fromsecurity cameras that can identify unique individuals.

Virtual Queue

A virtual queue is a queue for a consumable event that an agent canjoin. An agent may express interest in partaking in a consumable eventby joining the virtual queue through a kiosk, a mobile deviceapplication, or other internet interface. An agent may join and be intwo or more virtual queues for different consumable events at the sametime. Once agents join the virtual queue for a consumable event, theirposition in the queue is assigned sequentially and how long it takes forthe agent to reach the front of the virtual queue is dynamicallydetermined based on a variety of factors, each of which is discussedlater. Instead of agents being summoned to the consumable eventsequentially in the order that they joined the virtual queue, agentprogression through the virtual queue is dynamically updated in order toimprove throughput of agents and utilisation of the consumable eventwhile decreasing agent time loss having to physically wait proximate toa consumable event or when accessing the consumable event. In oneexample, in order to accurately convey to agents their progress throughthe virtual queue, agents receive a dynamically updated estimated timeuntil they are summoned to the consumable event instead of being given aqueue position number. The virtual queue is considered to be full if thecurrent time plus the current summon estimated wait time is past theclosing time of the consumable event.

Summon

Once an agent is at or near the front of the virtual queue, they may beinvited or summoned to the consumable event, for example to a physicalqueue, the entrance to the consumable event, or a specific table orvehicle. In the situation where there is a group of agents, one or moreof the agents may be elected to receive the summons. Communicationbetween the system and agents, such as updates and summons, may becommunicated to agents via devices the agent is known to be interactingwith or proximate to the agent, such as a kiosk or other terminal andtheir mobile device by one or more methods including but not limited toaudio directives such as simple voice messages, audio cues, or voicemessages communicated via directionally focused sound or audio spotlighttechniques, textual directives such as SMS messages or pop-upnotifications, haptic directives such as vibration, and visualdirectives such as video, an image display, or an augmented realitydisplay. Summons may also include a query to the agent, asking the agentwhether they still intend to attend the consumable event, whether theywould like to postpone attending the consumable event, whether they areinterested or currently consuming another event and would like thisconsidered in determining their position in the virtual queue or thetime of their summoning, or whether they would like to cancel theirrequest to attend the consumable event.

Physical Queue

A physical queue is a queue at an entrance to a consumable event thatagents must wait in prior to being allowed to enter a consumable event.An aim of embodiments of the invention is that the physical queue lengthis kept to a minimum, e.g., 2-5 agents long, in order to keep the waittime in the physical queue low, e.g., less than 5 minutes. In somecases, consumable events such as cafés and restaurants do not have aphysical queue because agents are seated at tables once they aresummoned to the consumable event after waiting in the virtual queue, sosummoning an agent to the physical queue of such a consumable eventwould mean the same thing as summoning the agent to the consumableevent.

Some consumable events may have multiple entrances and thus multiplephysical queues. For consumable events with multiple entrances, thesystem may direct those at or near the front of the virtual queue to anappropriate physical queue, such as the entrance to the event closest tothe agents or the entrance that will have vacancies shortly.

Agent Score

The system may determine an Agent Score of an agent as a method todynamically determine when to summon the agent to a consumable event.Agent Scores are calculated values determined by the system based on avariety of different factors to determine either or both the capacity ofan agent to or how likely it is that an agent will arrive at thephysical location of the consumable event within a target time window.An agent can have multiple Agent Scores at any time if an agent is inmultiple virtual queues. In some examples, separate Agent Scores canalso be maintained for an agent's progress through a consumable eventrelative to an estimated target time for Agents to consume theconsumable event. Such Agent Scores can be used as factors indetermining summon times for other agents in the virtual queue for therespective consumable event. Agent Scores are discussed in furtherdetail below.

Operation of the system will now be described in detail with referenceto the drawings. Reference numerals referring to the same figure elementmay be used in multiple figures for efficiency and ease ofunderstanding.

FIG. 1 depicts an example of a system 100 for dynamically updating avirtual queue and summoning agents to a consumable event. System 100comprises memory 101 and one or more queue managers 102 implemented byprogram code running on one or more processors. In this respect, system100 is typically implemented on a server but may also be implemented inother ways, for example, using cloud-based service hosting.

In one example, memory 101 comprises a queue database 101 a, an agentrecords database 101 b, a history database 101 c, and an externalinfluence database 101 d. Memory 101 is any suitable device for storinginformation and/or program code and may be one or more devices. Suchinformation could be stored across multiple devices which may be inmultiple locations. Non-limiting examples of memory devices include RAM,such as DRAM and SRAM, ROM, such as EPROM or EEPROM, hard drives, solidstate drives, etc. As indicated below, in some examples, cloud-basedmemory storage can form part of memory. The skilled person willappreciate that any other appropriate means of storing data can be used.In one example, agent records database 101 b is used to store dataregarding agents that are currently active 105 while history database101 d stores data for all agents that have used system 100 as well aspattern data derived from observing agents. In one example, system 100updates history database 101 d at defined intervals. For example, aspart of an overnight process when venue 104 is closed.

In one example, system 100 is in data communication with one or moreagent mobile devices or fixed devices 103, venue 104, data sources orsensors local to one or more consumable events 105, one or moreconsumable event staff devices 106, devices 107 of one or more agents ofa second class of agents, and one or more location beacons 108. System100 may also receive data from one or more external influence datasources 109. As discussed above, the system 100 may communicate with theone or more data sources 103-109 through at least one of Wi-Ficonnections, cellular and mobile service connections, cloudcommunication connections, hive/swarm inter-device connections, and anyother appropriate communication methods.

Depending on the configuration, each consumable event 105 may have aqueue manager 1021-102 n assigned to it, there may be a queue manager102 for each venue 104 irrespective of how many queues are maintainedfor the venue 104, or a single queue manager 102 may manage virtualqueues for multiple consumable events at one or more venues 104.

In one embodiment, system 100 may communicate bidirectionally with agentmobile devices 103 by first receiving a variety of data from the agentsvia queuing applications running on their mobile devices 103. In oneexample, people wishing to join virtual queues must first download anapplication capable of communicating with system 100. In one example,when people become agents by joining a virtual queue for a consumableevent 105 using queueing application on their mobile device 103, agentmobile devices 103 send data to system 100, which is then stored inqueue database 101 a, and the agents are added to the virtual queue inthe order that they joined. Additionally, the queue manager 102 may senda notification or summon to the agent's mobile device 103 through theapplication running on the mobile device 103, asking the agent whetherthe agent still intends to attend the consumable event 105. Similarly,the agent's mobile device 103 may send the agent's response to thesummons back to system 100, which is processed by queue manager 102.

In an embodiment, system 100 may communicate bidirectionally withdevices at known locations 103. For example, a person may join thevirtual queue and become an agent through a device 103 such as aterminal. Queue manager 102 may communicate with agents via devices 103based on agent interactions with that device 103 or another device suchas a door entry swipe reader. Additionally, queue manager 102 may send anotification or summon to a device 103 through an application running ondevice 103, asking the agent whether the agent still intends to attendthe consumable event 105. Similarly, the device 103 may send the agent'sresponse to the summons back to system 100, which is processed by queuemanager 102. For example, an agent in a virtual queue for a restaurantwith a mobile device 103 that is out of batteries may decide to returnto their hotel room to rest and charge their mobile device 103 whilewaiting to be summoned to the restaurant. In this example, because thequeue manager knows that the agent's mobile device 103 is turned off,the agent is staying at a hotel due to a hotel mobile applicationpreviously communicating such data to the queue manager 102, and thatthe agent is in their hotel room because the queue manager has receiveda notification from the hotel security system that the agent's room hasbeen accessed, a summons may appear on a television or another device103 in the agent's hotel room, notifying the agent that they may proceedto the restaurant if they accept the summons.

Queue manager 102 may also receive other data from the agent's mobiledevice 103 that the queue manager 102 can use to determine when tosummon the agent. For example, data regarding the agent's mobile device103 battery level via a power monitoring application, food or drink theagent has ordered via a food ordering application, whether the agent hasjoined the virtual queue for another consumable event 105 via thequeueing application, how the agent has interacted with other consumableevents 105 or other events or activities that do not require queueingfor in the venue 104, and other sources. When queue manager 102 does notreceive any data from any application of the agent's mobile device 103for a period of time, e.g., 30 minutes, queue manager 102 may determinethat the agent's mobile device 103 is asleep. All of the data that theagent's mobile device 103 sends to queue manager 102 may be stored in arecord for that agent in the agent records database 101 b.

Queue manager 102 may learn agent preferences from how agents interactwith their mobile device 103, how agents interact with consumable events105 or other events or activities that do not require queueing for inthe venue 104, and agent location and movement data. Queue manager 102may track an agent's location and movement data through the agent'smobile device 103 in a number of ways including location beacons 108within the venue 104, Wi-Fi triangulation, GPS, near-fieldcommunication, sequencing estimation, proprietary location trackingservices as mobile device 103 applications, dead reckoning estimation,the agent interacting with entities or devices at known locations,computer vision, or other wireless communication methods. Agentpreference, location, and movement data may also be sent by an agent'smobile device 103 to queue manager 102 and stored by agent recordsdatabase 101 b and processed by queue manager 102.

Queue manager 102 updates the agent's Agent Score, discussed in furtherdetail below, based on how an agent interacts with their mobile device103, what preferences the agent may have as learned by, and agentlocation and movement data, which impacts when queue manager 102 willsummon the agent to the consumable event 105.

As indicated above, system 100 may first receive data from agent mobiledevices or other devices 103 when the associated agents join the virtualqueues for a consumable event 105 and store this data in queue database101 a. System 100 may also receive data from agent mobile devices 103and store the received data in agent records database 101 b of memory101. Agent records database 101 b is used to compile informationregarding agents currently in virtual queues for consumable events 105;queue manager 102 may then access agent records database 101 b todetermine an agent's Agent Score. Although agents are ordered in thevirtual queue sequentially based on when they joined the virtual queue,as described further below, queue manager 102 may then use Agent Scoresto determine the likelihood of each agent in the virtual queue arrivingat the consumable event when summoned and then dynamically adjust whento summon an agent based on their Agent Scores. Queue manager 102 maythen access queue database 101 a and update the Agent Score fields ofeach agent in the virtual queue and use the current set of Agent Scoresto determine when to summon an agent to the consumable event 105.

Also, as indicated above, system 100 may also store the agent datadiscussed above in history database 101 c. Queue manager 102 may accesshistory database 101 c, which stores past agent behaviour, such asmovement patterns within the venue 104 and consumable events 105,alongside utilising machine learning and artificial intelligence toprocess and develop predictive agent behaviour or patterns. System 100may use machine learning instead of or alongside Agent Scoredeterminations to improve agent throughput through consumable events 105and utilisation of consumable events 105.

Aside from summoning the agent, queue manager 102 may also communicatewith agent mobile devices 103 for other purposes such by sending themobile devices 103 suggestions for consumable events 105 or other eventsor activities that do not require queueing for, some of which may not berestricted to venue 104, based on the agents' preferences.

System 100 may also communicate bidirectionally with venue 104 in anumber of ways. For example, venue 104 may provide system 100 with venueheadcount data, venue ticket sales data, physical layout and floorplandata, security camera data, and other venue data that may be pertinentto operation of the venue, which may be stored in agent database 101 band history database 101 c. Queue manager 102 may access these databasesand process the data from venue 104 to determine, for example, thedensity of agents and people not queued for events or activities withinthe venue and take this data into account when calculating Agent Scores.

System 100 may also communicate with sensors, terminals, kiosks or localdata sources in the area, venue, and at one or more consumable events105. For example, a computer at a consumable event 105 may maintainschedule data for the event, seating occupancy for the event, or foodorders for a restaurant and transfer the data to system 100 periodicallyso that queue manager 102 may control the physical queue summon timingfor the consumable event 105. Additionally, although agents may interactwith a consumable event 105 via their mobile device 103, such as“liking” the event or some element of the event, consumable events 105may have their own feedback terminal or kiosk at the exit of theconsumable event 105 where agents may rate the consumable event. System100 may receive this data and store it into agent database 101 b inorder to have queue manager 102 process the data and use it wherenecessary, such as updating an agent's position in a virtual queue,Agent Score, preferences or using “likes” as an indication that aconsumable event 105 is well-received and factor that into machinelearning predicting agent behaviour in time spent to consume theconsumable event 105. An agent may also be monitored when they use a keycard, or other form of access device to enter a facility or room orutilise a kiosk or device 103 in another location to provide system 100with knowledge of their location. Consumable events 105 may also collectdata from an agent via their mobile device 103, such as tracking themobile device 103 location within the consumable event 105, and sendsystem 100 data regarding the capacity or density of the agents in theconsumable event 105, the rate at which agents are consuming theconsumable event 105, and average rates at which agents have movedthrough the consumable event 105 before in the past. System 100 maycommunicate agent data to the local computer at consumable event 105,indicating that certain agents have been summoned to the consumableevent.

In conjunction with system 100 sending agent data to the consumableevent 105, system 100 may also send agent data to consumable event staffand their devices 106 in order to keep the staff aware of the incomingnumber of agents and their likely time of arrival at a consumable event.In some examples, consumable event staff may use this information inorder to use their discretion to let agent into the consumable event 105if doing so would not impact the flow of the virtual queue. Consumableevent staff may also communicate with system 100 via consumable eventstaff devices 106 in the event of needing to add people, such as VIPs,to the consumable event immediately, or in the event of consumable event105 malfunction and closure or other emergencies.

System 100 may also communicate bidirectionally with devices of agentsof a second class of agents 107. Communication systems in a self-drivingbus or cleaning robot and devices of bus drivers and cleaning personnelare examples of as devices of agents of a second class of agents 107.Like agent mobile devices 103, devices of agents of the second class ofagents 107 may transfer data to system 100 regarding their location andmovement path or rate of movement. The devices of agents of the secondclass of agents 107 may also transfer itinerary and schedule data tosystem 100, so that the system 100 can determine when the agent of thesecond class of agents should be summoned and what the agent of thesecond class of agents should do once summoned. Examples of operation ofthese agents of the second class of agents are discussed below.

System 100 may also communicate bidirectionally with location beacons108. Location beacons 108 may determine the distance between an agentmobile device and the beacon and relay this data to system 100.Conversely, system 100 may ping a location beacon 108 and have thelocation beacon 108 check if a specific agent or group of agents arewithin the beacon 108 detection range. As discussed above, this agentlocation data may be stored in the agent database 101 b and the historydatabase 101 c.

System 100 may also receive data from one or more external influencesources 109. For example, system 100 may receive dynamic inclementweather data from a weather data source, traffic data from a trafficdata source, and public transport data from a public transport datasource. System 100 may store this data from external influence sources109 in external influence database 101 d, which may be accessed by queuemanager 102 in conjunction with agent database 101 b and historydatabase 101 c to recalculate and update an agent's Agent Score, analysedata regarding how external influences affect transit times to alocation or venue 104 or consumable event 105 over time, and access andupdate queue database 101 a accordingly.

FIG. 2 depicts an example of a venue 104. Venue 104 may have an indoorarea 201 and an outdoor area 202. Venue 104 may have a plurality ofconsumable events 105 and a plurality of events or activities that donot require queueing for 203. Venue 104 may house system 100 from FIG. 1, or system 100 may be stored remotely from the venue 104. In additionto depicting agents 204 throughout the venue, FIG. 2 shows that peoplenot queued for any event or activity 205 may also be in attendance atthe venue 104.

When a person not queued for any event 205 indicates that they wouldlike to attend or consume a consumable event 105 by joining a virtualqueue for the consumable event 105 while either at a venue 104 hostingthe consumable event 105 or at somewhere external to the venue 104, thequeue manager 102 begins to dynamically determine a time to summon theagent 204 to achieve improved throughput of agents 204 and utilisationof the consumable event 105 while decreasing agent time loss whenaccessing the consumable event 105.

The queue manager 102 may process the progression of an agent throughthe virtual queue and a consumable event 105 by assigning agents variousstates depending on their advancement through the process. System 100stores these agent states into agent database 101 b so that queuemanager 102 can accurately update the virtual queue as stored in thequeue database 101 a. Before joining the virtual queue for a consumableevent 105, an agent is in an “unqueued” state, which is stored in agentdatabase 101 b. When the queue manager 102 adds an agent to the virtualqueue for the consumable event 105, the agent enters into a “in virtualqueue” state and updates the current state of the agent from theprevious “unqueued” state in agent database 101 b.

While waiting in the virtual queue for a summon to the consumable event105, the agent updates to a “summon pending” state, replacing theprevious “in virtual queue” state the agent was in within agent database101 b. An agent may update from the “in virtual queue” state to the“summon pending” state, for example, when the agent's Agent Score isfirst calculated. Once the agent receives a summon to the physicalqueue, the queue manager 102 updates the agent's status in agentdatabase 101 b to a “summoned” state. If the agent decides to postponetheir attendance to the consumable event 105 after being summoned, theagent instead updates to a “postponed” state from the “summon pending”state in agent database 101 b.

If the agent accepts the summons, makes their way to and is tracked asbeing within the physical queue of the consumable event 105 or withinthe physical boundaries of consumable event 105, the agent updates to a“served” state from the “summoned” state in agent database 101 b. Oncethe agent finishes consuming the consumable event 105 and exits theconsumable event 105, the agent updates to a “completed” state from the“served” state in agent database 101 b and then subsequently enters an“unqueued” state again. In some embodiments, agents may be manuallyrecorded by consumable event staff through devices 106 as entering,commencing consumption, or completing consumption of the consumableevent 105. In some embodiments, agents may also be uniquely identifiedand recorded as entering, commencing consumption, or completingconsumption of the consumable event 105 through computer vision, agentinteractions with their mobile device 103 or devices at a known location103, or other methods. If the agent responds to the summons bycancelling their attendance of the consumable event 105, the agentupdates to a “user cancelled” state from the “summon pending” state inagent database 101 b and then subsequently enters an “unqueued” stateagain. If the agent either does not respond to a summon or accepts asummon but subsequently does not arrive at the physical queue after aperiod of time, the agent updates to a “queue cancelled” state from the“summon pending” state in agent database 101 b and either returns to a“summon pending” state at the appropriate place in the virtual queueonce they become active again or an “expired” state if the agent takestoo long to become active on their mobile device 103 again.

If the agent becomes inactive on their mobile device 103 for an extendedlength of time at any time or state their intent to leave the virtualqueue, the agent updates to a “queue cancelled” state from whateverstate they were previously in within agent database 101 b and thensubsequently enters an “unqueued” state again.

In embodiments of the present invention, the system 100, through thequeue manager 102 calculates Agent Scores of agents in the virtual queueto reflect the likelihood of an agent arriving at the physical queue ofthe consumable event 105 within a desired time frame, e.g., within atime window to then utilise an opening in the consumable event, the next2 to 5 minutes, or any appropriate time window. Agent Scores may alsoreflect an agent's capacity to attend a consumable event, e.g., whetherit is possible for an agent to attend a consumable event at all. In oneexample, the Agent Score is a number between 1 and 0, where an AgentScore closer to 1 indicates that there is a greater likelihood of theagent arriving at the physical queue within a target time frame and anAgent Score closer to 0 indicates that there is a lower likelihood ofthe agent arriving at the physical queue within the target time frame.In some embodiments, an agent's Agent Score is calculated by the queuemanager 102 as soon as an agent joins the virtual queue and is updatedon an ongoing basis until the agent joins the physical queue. Forexample, an agent's Agent Score may be calculated or updated at a setinterval of time, whenever a summon to a physical queue becomesavailable based on the agent's Agent Score the last time the Agent Scorewas updated, the agent's current location or a change in the agent'slocation, and any other relevant factor, or at any other point in timethat is appropriate. An agent's Agent Score may also be updated atdifferent frequencies depending on an agent's location, such as anagent's Agent Score updating at a different frequency than an agent'sAgent Score that is proximate to the consumable event 105. An agent'sAgent Score may be calculated based on one or more system 100 monitoredfactors that include but are not limited to: an agent's activity ontheir device, an agent's location or position, an agent's averagetransit speed, an agent's method of transit, travel-relevant informationexternal to the consumable event, whether the agent is consuming anotherevent, and an agent's preferences. In some examples, the queue manager102 may use different combinations of the different factors consideredwhen calculating an agent's Agent Score.

As indicated above, an agent's Agent Score may update based on theagent's activity on their mobile device 103. For example, if an agenthas not seen the notification sent by the queue manager 102 summoningthe agent to the physical queue, e.g., due to being inactive on theirmobile device 103, their Agent Score may decrease. In this case, thequeue manager 102 will be able to detect, through the queueingapplication or another application running on the agent's mobile device103, or through any other element of system 100, that the queueingsummons has not been accessed, acknowledged, or otherwise viewed. If theagent indicates that they accept the summon via an application runningon their mobile device 103 into the physical queue of the consumableevent 105, their Agent Score may increase. Agents are typically given agenerous amount of time to arrive at the physical queue, e.g., 30minutes, after they have accepted the summon. If an agent interacts withtheir mobile device 103 regularly such that the mobile device 103 is notasleep for prolonged periods of time or they respond to the summons viaa kiosk or other device 103, their Agent Score may increase as the queuemanager 102 will know that the agent is actively checking their mobiledevice 103 or other methods to determine their position in the queue dueto receiving data from different applications running on the mobiledevice 103 and will likely see and respond to notifications they receivefrom the queue manager 102. The queue manager 102 may also detect otheragent mobile device activity, such as the agent expressing an intent toconsume another event by joining the virtual queue for anotherconsumable event through the queueing application or if the agent ordersfood or drinks via a mobile device application. The queue manager 102may also receive data regarding an agent's mobile device battery levelvia a power management application running on the mobile device 103 andmay recommend an appropriate course of action to the agent based on theagent's place in the virtual queue and Agent Score. In one example, thequeue manager 102 may issue an early notification with a currentestimate of when the agent should seek to arrive at the consumable eventif the battery level falls below a defined level. Further, queue manager102 may inhibit any changes to the agent's state and alter how theagent's Agent Score is recalculated to account for the likelihood thatthe user's device has run out of battery.

An agent's Agent Score may update based on the agent's location,position, or proximity to a consumable event 105. For example, if anagent is within a certain short physical distance from the entrance of aconsumable event 105, their Agent Score may increase; conversely, if anagent is physically far from the entrance of a consumable event 105,their Agent Score may decrease. An agent's location may be determined ina technologically agnostic manner, but methods of determining an agent'slocation may include the agent's mobile device 103 being detected by oneor more of: location beacons 108 within a venue 104, Wi-Fitriangulation, GPS, near-field communication, sequencing estimation,proprietary location tracking services, dead reckoning estimation, theagent interacting with entities or devices at known locations, computervision, or other wireless communication methods.

In an embodiment, if the queue manager 102 detects that the agent andtheir mobile device 103 are on the move due to receiving changing orupdating location data from the mobile device 103 or a location beacon108, the queue manager 102 may factor that movement and transit speedinto updating the agent's Agent Score or the amount of time prior to anexpected consumable event opening that a summons would be sent to thatagent. For example, if an agent is moving towards the entrance of aconsumable event 105, the agent's Agent Score may increase. If an agentis moving towards the entrance of a consumable event 105 quickly, theagent's Agent Score may increase comparatively more than the increase inAgent Score of an agent that is moving slowly towards the entrance of aconsumable event 105. Conversely, if an agent is moving away from theentrance of a consumable event 105, the agent's Agent Score maydecrease. If an agent is moving away from the entrance of a consumableevent 105 quickly, the agent's Agent Score may decrease comparativelymore than decrease in Agent Score of an agent that is moving slowly awayfrom the entrance of a consumable event 105. In some embodiments, anagent's Agent Score may not be altered by the amount of time prior tothe target window for event attendance by the agent given their positionin the virtual queue at which a summons is sent may be increased ordecreased given their relative position and average rate of movement.

An agent's Agent Score or the amount of time prior to a target windowfor consumption of the event may update based on the agent's method oftransit. An agent's method of transit may be how an agent arrives at thephysical queue of a consumable event 105 after indicating their desireto consume the event. In some examples, the queue manager may receivedata from the venue 104 defining the physical layout and/orarchitectural floor plan of venue 104 (or have that data stored inmemory 101) or may use agent movement or location data stored in theagent database 101 b 101 c in order to identify whether an agent istaking the stairs, elevator, or other transit method to get to theconsumable event 105 they were summoned for. For example, a locationbeacon 108 placed near a flight of stairs or an elevator may send thesystem 100 agent location or movement data as the agent makes their wayup or down the stairs or elevator.

The queue manager 102 may also take the density of people who are notqueued for an event or activity in a venue 104 and consumable event 105into account when considering an agent's position, rate of movement, andmethod of transit within a venue 104. The system 100 may receive datafrom venue 104 or mobile devices of unqueued people to detect thepresence and density of people who are not queued for any event oractivity, for example, through one or more of the follow methods: venueentry headcounts, ticket sales, bookings, presence or location data fromthe mobile devices of the people when the people run relevantapplications on their mobile devices, detecting mobile phones connectedto the Wi-Fi of the venue 104, computer vision analysis of securitycameras to identify unique individuals in a space, IR analysis, andindividual tokens. By tracking agents and people who are not queued forany event or activity transit behaviour and drawing upon historicaltransit behaviour data of agents and people not queued for a consumableevent, the system 100 factors such data into calculations regardingevent consumption, volume of likely requests to join a virtual queue ina period of time, the amount of time before a target window forconsumption of a consumable event 105 that a summons should be sent toany particular agent, or the estimated agent arrival times to theconsumable event 105. For any number of consumable event 105 types, therate of consumption or speed with which agents consume an event maychange depending on if it is crowded or not.

Additionally, if an agent joins the virtual queue for a consumable event105 from a location exterior to the venue 104 of a consumable event 105,e.g., from the agent's home, the queue manager 102 may factor theagent's method of transit to the venue 104 and consumable event 105 intoupdating the agent's Agent Score. Depending on if the agent decides totake a bike, car, public transport, or some other mode of transportationto the consumable event 105, the queue manager 102 may update theagent's Agent Score accordingly. As discussed above, the queue manager102 may take into account the transit speed of an agent when updatingthe agent's Agent Score, thus the transit speed, whether considering theaverage transit speed or a dynamically updated transit speed, may beconsidered by the queue manager 102 irrespective of if it has detectedthe agent's method of transit, e.g., from receiving data from a publictransport data source or by comparing agent transit speeds againstaverage transit speeds for different vehicles or methods of transport.For example, as riding a bicycle would typically take longer to reach alocation than driving a car, assuming a common starting place andsimilar travel conditions, the queue manager 102 may increase the AgentScore of an agent driving a car to a consumable event 105 comparativelymore than the increase in Agent Score of an agent riding a bicycle tothe consumable event 105, subject to external influences.

Although the bicycle/car example above assumes that the agents havesimilar travel conditions, the queue manager 102 may also take intoaccount different travel-relevant factors or externally influencing dataexternal to a consumable event 105, which may be stored in externalinfluence database 109 and accessed by the queue manager 102, whencalculating an agent's Agent Score or expected travel time to theconsumable event. For example, the system 100 may receive data regardingadverse weather or traffic conditions, or public transport conditionsfrom a variety of external influence sources 109 that would affect anagent's trip from a starting location to the consumable event 105. Ontop of rainstorms or traffic jams slowing down an agent's transit from astarting location to the consumable event 105, the queue manager 102 maytrack the progress of the rainstorm or traffic to update the agent'sAgent Score accordingly. Additionally, should an agent encounter adverseweather or traffic conditions while en route to the consumable event105, the queue manager 102 may factor such delays into the agent's AgentScore and the agent's estimated time of arrival to the consumable event105. The queue manager 102 factors how long it takes an agent to arriveat the physical queue while considering travel-relevant or externallyinfluencing data in order to determine when to summon the agent to thephysical queue, subject to when an opening in the physical queue becomesavailable. In scenarios where an agent is experiencing a combination oftravel-relevant externally influencing effects external to a consumableevent 105 that has historically resulted in agents cancelling theirevent attendance, such as a snowstorm combined with a traffic accidenton the road the agent is travelling on, the queue manager 102 may seekreaffirmation from the agent as to their desire to attend the event 105if summoned. The queue manager 102 may lower the agent's Agent Scoreuntil the agent reaffirms their intention to attend.

The queue manager 102 may also use adverse weather information to adjustaffected agents' Agent Scores when there are outdoor venue 202consumable events 105. For example, if a rainstorm hits while an agentis in a virtual queue for the outdoor consumable event 105, the queuemanager 102 will take agent delays getting to the consumable event 105caused by the rainstorm into consideration. Additionally, in the eventof a rainstorm, if a venue has outdoor consumable events 105, the queuemanager 102 would factor the potential increase in indoor venue trafficwhen calculating Agent Scores as agents and other people who are notqueued for any event or activity may be inclined to head or stayindoors.

An agent's Agent Score may update based on agents inferred or explicitintent such as whether the agent is consuming another event or engagingwith an event that does not requiring queueing for. For example, if thequeue manager 102 detects that an agent is in a restaurant and hasordered food or drinks, for example by receiving data from an orderingcomputer at a restaurant consumable event 105 that the agent has orderedfood or drinks from that restaurant's menu, or by inferring this fromdata from the venue 104 showing that a restaurant is located at thelocation where the agent is not moving, or by some other detectionmeans, the system 100 may lower the agent's Agent Score for the durationof the agent's meal. The time it takes an agent to finish their meal maybe inferred by the agent remaining stationary at a location reserved forthe consumption of food or through the average time taken to consume ameal in a particular food service facility and the timestamp associatedwith the agent's food order being transferred from the kitchen to theagent by a server as recorded by the food service system. Also, if anagent has joined two virtual queues belonging to two differentconsumable events 105 and the agent has joined the physical queue of thefirst consumable event 105, the agent's Agent Score of the secondconsumable event 105 may decrease for at least the duration of time theagent is consuming the first event 105. In this way, the system 100ensures that multiple virtual queues for consumable events 105 maycoexist harmoniously and that agents are not summoned to any event 105they cannot attend because of the progress of a virtual queue for adifferent consumable event 105.

An agent's Agent Score may update based on the agent's preferences,inferred preferences, or inferred behavioural classifications. If anagent remains in a certain location or area of a venue for a period oftime longer than the average time an agent (or a person who is notqueued for any event or activity) spends or longer than a determinedthreshold of time at that location or area or at a series of locations,areas, or galleries, the queue manager 102 will use this agent locationdata or movement data indicative of slow or fast movement and learn thatagent's preference for that location, characteristics of such locations,or areas and factor that into the agent's Agent Score. For example, ifan agent has remained in a café or in a particular gallery of a museumfor a period of time that is longer than the average time an agent (or aperson who is not queued for any event or activity) spends at thatlocation or area, the queue manager 102 may decrease the Agent Score ofthe agent but also learn that the agent has a preference for thatlocation or area. In examples where the queue manager 102 has access tothe physical layout and architectural floor plan data of a venue 104,the queue manager 102 may treat different spaces differently, such asexpecting agents to stay in a café space for a different period of timethan in a gallery space depending on whether the agent has a preferencefor cafés or particular galleries, or realising that an agent is in arestroom space and may not necessarily have a preference per se forbeing in the restroom.

As the queue manager 102 is able to track the movements of an agent, thequeue manager 102 may identify whether an agent moves quickly or slowlyinside of a venue 104 either relative to their own average pace ofmovement or the movement of other agents. In some examples, queuemanager 102 learns that “fast” or “slow” agent movements may beindicative of agent's preferences. For example, an agent moving slowlythrough a particular gallery of a museum may indicate the agent'spreference for the contents or layout of the gallery, especially whencompared to another agent who moves quickly through the same gallery.

The queue manager 102 may also learn an agent's preferences by seeingwhat the agent has scheduled for the day. For example, an agent mighthave a ferry ride at 10:00 AM, a guided tour at 11:00 AM, a lunchreservation at 12:30 PM, a talk at 2:30 PM, and a dinner reservation at5:30 PM. The queue manager 102 might be able to determine that the agenthas a preference for guided tours, talks, and eating at restaurants andfactor this information into the agent's Agent Score and may recommendrelated guided tours, talks, and restaurants to the agent. In somesituations, the system 100 may also guide agents to consumable events105 or events or activities that do not require queueing for within thesame venue by providing agents with directions on how to reach therecommended event via the queueing application running on the agent'smobile device 103. The queue manager 102 may also treat informationabout an agent's preferences differently if the agent is moving “fast”or “slow” mover and the agent has a limited amount of time before anevent, e.g., a ticketed event. For example, a “slow” moving agent mayhave different preferences and behaviours if they only have one hourbefore a ticketed event.

The queue manager 102 may also learn an agent's preferences through theagent's actions. For example, if the agent indicates that they “like” or“dislike” a piece of artwork in a museum or if the agent rates a pieceof artwork in a museum a certain level amongst a range of values via amobile device application 103 transmitting data to the system 100, thequeue manager 102 may learn that the agent has a preference for certainpieces of art and may factor that into the agent's Agent Score. Thequeue manager 102 may then know that if the agent passes by artworksimilar to the piece of artwork that the agent has “liked” or ratedhighly, the agent may spend more time there and their Agent Score maydecrease accordingly, for example based on historical data gathered forother agents that establishes a correlation between the art works. Thequeue manager 102 may also determine an early time to summon the agentto allow the agent more time to reach the entrance of the consumableevent 105 if the path from the agent's current location to the entranceof the consumable event 105 has artwork that the agent has “liked” orrated highly along the way. Additionally, the system 100 may alsosuggest or recommend to the agent other pieces of artwork in the samevenue or in different venues that are similar to the piece of artworkthat the agent has “liked” or rated highly.

When the queue manager 102 is aware of an agent's preferences, the queuemanager 102 may take these preferences into consideration whencalculating how long the agent will take to consume a consumable event105 when deciding when to summon subsequent agents to the physical queueof the consumable event 105. For example, if an agent has a preferencefor taking the time to read everything in an art exhibit or listen toeverything at an exhibit, e.g., playing an interactive recordinginstalled accompanying a piece of art or a segment in an audio guidedtour, the queue manager 102 may factor this into the agent's Agent Scoreand the amount of time an agent might take in consuming a consumableevent 105. Instead of or in addition to learning an agent's preferences,the queue manager may directly ask agents what their preferences are,for example by presenting the user with a series of questions when theyconfigure the application on their device or when they arrive at a venueand then update their Agent Score accordingly and factor thatinformation into its decisions regarding summoning the agent. System 100may also monitor actual agent consumption times of the event todynamically update its calculations regarding likely time by the agentconsuming the event and enhance its ability to predict the amount oftime other agents will spend consuming an event given their behaviourand preference data. The system 100 may store agent preference data andany data related to preference data such as agent location or movementdata in agent database 101 b such that queue manager 102 may access thedata at any time and factor it into Agent Score calculations or machinelearning operations.

In embodiments of the present invention, agents in the virtual queuewith a low Agent Score are not removed from the virtual queue. Instead,the queue manager 102 will skip them and offer physical queue slots forevent consumption to active agents, i.e., agents with a high AgentScore, until the agents in the virtual queue with low Agent Scoresbecome active and raise their Agent Score. Hence, the lower an agent'sAgent Score is, the less of an impact the agent's presence or lackthereof will have on the overall time estimates for agents that havejoined the virtual queue after the agent with the low Agent Score.

When an inactive device awakens, the associated agent's Agent Score isre-evaluated and re-established and the agent is reinstated at anappropriate position in the virtual queue. As other agents further aheadin the virtual queue may have been served in the time the agent with theinactive device stayed inactive, the agent may often find themselveswith a shorter estimated wait time in the virtual queue than before theybecame inactive on their mobile device 103 once they become active ontheir mobile device 103 again. As an agent's history of desire to attendthe event, stored both in agent database 101 b and history database 101c, is a factor being utilised by the system 100, the agent may oftenregain their queue position and the timing of being invited to attend isvirtually unaffected by their device becoming inactive for a period oftime. For example, if an agent is inactive on their mobile device for 2hours but the estimated wait time for a virtual queue is 1 hour long,the agent may find themselves at the front of the virtual queue with asummons to the consumable event once they re-open the queueingapplication on their mobile device 103. In some cases, an agent's entryinto the virtual queue may expire only after the agent has been inactiveon their mobile device 103 for an extended length of time.

In embodiments of the present invention, when an agent's Agent Score islow, but the agent is proximate to the physical queue, the queue manager102 may send a notification through the queueing application running onthe agent's mobile device 103 in order to summon the proximate agent tothe consumable event, for example, in order to fill any gaps that havesuddenly arisen in the physical queue, to thereby increase agentthroughput through the consumable event 105. This essentially allows theproximate agent to jump the queue in a circumstance where a gap wouldhave arisen if the agent with the highest Agent Score was summoned.

In addition to agents indicating that they accept the summons to theconsumable event 105, agents may also postpone or cancel attending theconsumable event 105. If the agent indicates that they wish to postponetheir entry into the physical queue, the agent may retain their positionat the front of the virtual queue but will be skipped for a period oftime, e.g., 10-15 minutes, after which they will be summoned to theconsumable event 105 once again. In one example, agents may postponeattending the consumable event 105 when summoned to the consumable event105 a configured number of times until they are removed from the virtualqueue altogether and must re-join the virtual queue again. If the agentindicates that they wish to cancel attending the consumable event 105,they may be removed from the virtual queue for that consumable event105. Additionally, if an agent sees the notification summoning the agentto the consumable event 105 but does not respond to the notification,the summon may expire after a predetermined amount of time, e.g., 30minutes, where the agent would have to join the virtual queue for theconsumable event 105 again should they desire to consume the event 105.

To better visualise the dynamic queueing ability of the system 100, FIG.3 presents an example of a dynamic queue model 300. Virtual queue 301,physical queue 302, and consumable event 303 each have a number ofspecific agents within their space, where the queues begin on the rightand are filled out to the left. Agent 304 represents an individual agentthat is being served or is currently consuming the consumable event 105.Agents 305 represent two agents that have responded to their summons tothe consumable event 105 and are currently in the physical queue 302 atthe entrance of the consumable event 105, shortly awaiting their entryinto the consumable event 105. At the front of the virtual queue 301 isan agent 306 with an Agent Score of 0.1 due in part to having a mobiledevice asleep 103 for more than 30 minutes. Next, agents 307 each havean Agent Score of 0.1 due in part to each agent currently attending adifferent consumable event 105. Next, agents 308 each have an AgentScore of 0.1 due in part to each having a mobile device 103 asleep formore than 30 minutes. Next, agent 309 has an Agent Score of 0.5 due inpart to having a mobile device 103 asleep for 15 minutes. Next, as aresult of agents 306-309 having a low Agent Score, the system 100 skipsover agents 306-309 and places agent 310, who is active on their mobiledevice 103 and is near to the consumable event entrance at the front ofthe virtual queue 301 so that agent 310 will be the next agent summonedto the physical queue 302.

As agents 311 are also active on their mobile devices 103, the queuemanager 102 will summon them after summoning agent 310 if agents 306-309do not raise their Agent Scores in the meantime. Next, agent 312 has anAgent Score of 0.5 due in part to having a mobile device 103 asleep for15 minutes. Finally, agents 313 are both active on their mobile devices103, so assuming agents 306-309 and 312 do not raise their Agent Scores,they should be the next agents to be summoned to the physical queue 302.

FIG. 8 is a graph 800 depicting examples of simplified likelihood ofarriving soon functions, with x-axis 801 representing time in minutesand y-axis 802 representing Agent Score. A first likelihood of arrivingsoon function and plot 803, y=1+0.75(e^(−x/5)−1), and a secondlikelihood of arriving soon function and plot 804,y=0.75+0.65(e^(−x/5)−1), are simplified examples of the likelihood of aparticular agent or group of agents of arriving at a consumable event105 within a target time frame that queue manager 102 may calculate anddynamically adjust in order to determine when to summon the agent orgroup of agents to the consumable event 105. For example, function andplot 804 shows that the higher the agent's or group of agents' AgentScore is, the less time it will take for the agent or agent group toarrive at the consumable event 105, For function 804, when the agent'sor group of agents' Agent Score is 0.5, queue manager 102 can operate onthe basis of an estimate that the agent or group of agents to arrive atthe consumable event 105 in 2.5 minutes. As the agent's or group ofagent's Agent Score decreases, the time system 100 can expect the agentor group of agents to arrive at the consumable event 105 increases.Queue manager 102 may determine that in order to efficiently allowagents to arrive at and consume the consumable event 105, a number ofagents with Agent Scores close to 1 may be summoned to the consumableevent 105, as the agents are likely to arrive at the consumable event105 within a short amount of time, before an agent with a lower AgentScore with a position closer to the front of the virtual queue. Further,queue manager can derive times at which to summon agents from thelikelihood to arrive graph. As discussed above, an agent's Agent Scoreis dependent on and influenced by a variety of different factors thatthe system 100 tracks in real time such that queue manager 102 candynamically update and decide when to summon the agent.

In embodiments of the present invention, in addition to, or as analternative to using one or more Agent Scores to determine the capacityand likelihood of an agent arriving at a physical queue of a consumableevent 105 within a target time frame, the queue manager 102 may utilisemachine learning or artificial intelligence to decide when to summon anagent to the consumable event 105. The system 100 may utilise machinelearning to analyse agent behaviour data and recognize patternsregarding agent behaviour. For example, through utilising machinelearning, the queue manager 102 may process agent behaviour dataobtained through various applications running on agent mobile devices103 to learn patterns of anticipated agent behaviour by analysingcharacteristics including transit time, dwell time, individual or groupmentality, and likelihood of deviation in order to determine whatfactors likely to result in the agent arriving at the physical queue atan appropriate time and then process data related to those factors todetermine an estimate when the agents are likely to arrive at thephysical queue if summoned and to summon agents when that estimatecorresponds to a target arrival time for the agents. Additionally,machine learning may help the queue manager 102 adapt estimation andaccuracy of information to the agent by matching live agent behaviourdata with historical patterns in a way that enables the queue manager102 to increase in predictive accuracy over time. Machine learning andartificial intelligence may also be utilised to assess or analyse agentconsumption behaviour and better predict consumption behaviour so as tobetter determine when vacancies in consumable events will next becomeavailable.

The system 100 may gather data from one or more agents, venues 104,consumable events 105, consumable event staff devices 106, agents of thesecond class of agents 107, location beacons 108, or external influencesources 109, such as public transit systems or meteorology systems, toprovide insight into how an agent would behave given competingattractions or schedules, weather information, occupancy and capacity oftransit areas, and the like. To this end, machine learning is especiallyeffective at analysing very large data sets containing many diversetypes of data from different sources and identifying patterns andcorrelations or likely casual relationships that might elude humanobservation. For example, the queue manager 102 may learn to recognisewhen an agent would likely deviate from expected behaviour and insteadmight be ready for lunch, or a trip to the restroom, or be drawn to acinema or other attraction. The queue manager 102 may also learn thatwhen agents go to some spaces or amenities in a venue 104, such as therestroom, a café, or food court area, agents may have an increasedlikelihood of departing from the venue 104 taking into account otherfactors such as time of day. For example, agents may typically leave avenue 104 after eating dinner at a restaurant or watching a movie atnight time. By detecting these patterns through agent behaviour data andapplying machine learning to produce a data set of predicted agentbehaviour, the queue manager 102 is able to adapt to differentsituations and lead the operations of the system 100 to improvethroughput of agents to a consumable event 105, utilisation of theconsumable event 105, agent experience within the consumable event 105and venue 104, and decrease agent time loss when accessing theconsumable event 105.

In some embodiments of the present invention, the queue manager 102receives physical space capacity limit data, the average time dataindicating how long it has taken agents to consume the activity or event105, a calculated estimated completion time for agents consuming theevent 105, and actual dynamic time data of current agents attending theconsumable event 105 from the consumable event 105, e.g., sensors,terminals, kiosks, or other local data sources of the consumable event105, or venue 104. As agents currently attending or consuming aconsumable event 105 make their way through the event and ultimatelyexit the event, the queue manager 102 tracks this agent flow rate databy calculating agent location and movement data received by the system100 from the agent mobile devices 103 over the physical space data ofthe consumable event 105. Queue manager 102 may utilise this agent flowrate data and physical space capacity limit data, average agentconsumption time data, estimated agent consumption completion time data,and dynamic agent consumption time data to calculate a further AgentScore for the agent which is used as an input for summoning furtheragents to the virtual queue for the consumable event 105. In oneexample, such an Agent Score indicates the likelihood that the agentwill finish consuming the event within a target time (e.g., 5 minutes)which is then used in the determination of when to summon the next agentor agents in the virtual queue to the consumable event 105. For example,when agents are making their way through the consumable event 105particularly quickly or slowly, the queue manager 102 will adjust thetiming of when to summon the next agent or agents. As the system 100 mayreceive data defining the size of the physical queue from a computer ora staff device at the consumable event 105, the queue manager 102 mayrevise the queue by summoning additional agents if agents move throughthe physical queue (and consumable event) faster than anticipated orramping down the summoning of agents when the physical queue becomeslarger than ideal.

In scenarios where a large group of people relative to the capacity of aconsumable event 105, e.g., a group of seven agents consuming aconsumable event 105 with a capacity of eight agents, suddenly leave ordepart from a consumable event 105 unexpectedly early, the queue manager102 may compensate for the sudden lack of agents consuming the event 105in a number of ways. The queue manager 102 may allow everyone in thephysical queue, such as those agents who have been summoned and who areimmediately physically proximate to the consumable event 105, to enterthe consumable event 105 while also summoning other agents who are closeto the front of the virtual queue to join the physical queue. The queuemanager 102 may also summon agents, who are not necessarily at or nearthe front of the virtual queue, but who are close in physical proximityto the physical queue and the consumable event to join the physicalqueue or to directly move into the consumable event 105. The queuemanager 102 may recalculate Agent Scores, expected transit times, andadjust summon times based on these and other influences at the time. Thequeue manager 102 may also take advantage of the situation and summon anagent of a second class of agents, such as a cleaner or cleaning robots,to the consumable event 105. For example, by sending an instruction tothe cleaning robots to clean the event space before the arrival of thenext agents. Although a cleaning robot may already be assigned tothoroughly clean somewhere else within the venue 104, the cleaning robotmay be summoned by the queue manager 102 to perform a quick clean of theconsumable event space and potentially return later to finish thecleaning job with a modified cleaning job.

In some embodiments of the present invention, a venue or consumableevent staff may manually authorize one or more people not queued for aconsumable event to become agents and place them directly into thephysical queue or consumable event 105. Through a mobile device of theirown or other electronic terminal 106, consumable event staff maymanually notify the system 100 that a new agent, such as a VIP, has beenadmitted directly into the consumable event so that the queue manager102 can take the new agent's consumption of the event 105 intoconsideration. Also, in some example the consumable event staff may viewthe virtual queue and expected arrival times of agents through theirmobile device 106, consumable event staff may use their discretion tomanually admit a person to the consumable event in appropriatecircumstances.

Additionally, in a scenario where an agent who may not necessarily be ator near the front of a virtual queue for a consumable event 105 passesby a physical queue for the consumable event 105 and notices that no oneis in the physical queue, consumable event staff may agree to usher theagent into the consumable event 105 if doing so would have little to noobservable effect or would have a positive effect on agent flow ratethrough the event 105 or any agents that have been summoned to thephysical queue but have been delayed on their way to the event. Thisscenario may occur when the queue manager 102 updates expected arrivaltime of a summoned agent on the basis of the receipt of movement orlocation data indicative of the summoned agent having been unexpectedlyslowed or stopped on their way to the physical queue by, for example,because they have been distracted by an exhibit, or location dataindicates that they have entered a restroom.

Consumable event staff may also enter data to enable the system 100 torespond to other unforeseen circumstances relating to the consumableevent 105, such as event malfunctions, closures, and emergencies. Inresponse to these notifications, the system 100 may issue notificationsto all agents in the virtual queue, update agents appropriately on atimeline for the consumable event 105 coming back online, and resumeoperation once the consumable event 105 is back up or nearly back up andrunning.

In some embodiments of the present invention, the queue managercontinues to operate robustly and resiliently when the system 100 cannotcommunicate with an agent's mobile device 103 for a period of time. Forexample, if an agent's mobile device 103 runs out of battery, moves intoa communications black-spot, exits the queueing application, orotherwise roams on and off communication networks, the queue manager maytemporarily ignore the agent's queue entry, but not necessarily removethe agent from the virtual queue, and skip over the agent in the virtualqueue to summon additional agents to compensate. Once the agent's mobiledevice 103 re-establishes communication with the system 100, the system100 may update the agent's position in the virtual queue based on whohas been served in the meantime and continue dynamically determiningwhen the agent may be summoned to the physical queue of the consumableevent 105. Additionally, because the system 100 may receive and accessphysical layout of a venue and historical agent data from venue 104, thesystem 100 may continue to dynamically determine when the agent may besummoned to the physical queue if the agent is moving through a knowncommunications black-spot, such as an elevator. Furthermore, system 100may utilise devices not held by agents to allow agents to interact withthe system. For example, if an agent's mobile device has run out ofbatteries, the agent may interact with kiosks or other terminals ordevices 103 or may ask a venue or consumable event staff to interactwith the system 100 via their staff device 106 to receive summons and tocommunicate with the system 100 their intent to consume or attend theconsumable event 105.

In some embodiments of the present invention, the queue manager 102maintains operating or winds down maintaining the virtual queue in theevent of an unexpected or otherwise catastrophic network outage orfailure. In either localised or site wide network outages, the queuemanager 102 may execute programs and protocols to avoid algorithmicrunaway. The states of agents and the representation of agents' statesin the system 100 is sometimes fractured or decentralised so that atleast some information can be communicated to the agents through theirmobile devices 103 in the event of a network failure. For example, therepresentation of agents' states does not assume that constant andreliable network connectivity is available and communication between thequeue manager 102 and agents cannot rely solely on connectivity. If thesystem anticipates that an agent should be summoned at a certain time,the queueing application will send data representing this future stateto the agent's mobile device so it can be maintained locally in cache ofthe agent's mobile device 103 and the application will generate anotification locally at the agent's mobile device in the event that thesystem 100 is unreachable. That is the applications running on agents'devices will inform agents of relevant options and outcomes, heldlocally in the respective agents' mobile device 103 caches, of how toproceed in the queue from that point in time if communication reaches anoffline state. Agents may also be provided with instructions and updatesat various points in time while the agent is in the virtual queue andcommunication networks are functioning properly regarding how to proceedshould communication break down.

Additionally, the queue manager 102 may continue improved functioning ofdetermining when to summon an agent to a consumable event 105 whennetwork connectivity is lost by continuing to calculate Agent Scoresand/or applying machine learning based on last known available agentdata, which includes data regarding the agent and data relevant to theagent's position, rate of movement, and other behaviours from any sourceof data necessary for such calculations, when offline. By continuing tocalculate and function as if online, the queue manager 102 may continueto predict what the current state of an agent will be despite the lackof network connectivity. Once the network comes back online andcommunication between the agent mobile devices 103 and the system 100 isre-established, the queue manager 102, can resume optimal or nearoptimal performance as quickly as possible thanks to the calculationsperformed while the network was offline or otherwise unavailable. Ifnetwork communication is not re-established, the queue manager 102 maystill provide likely expected states of agents or agent arrival timeswhen queried, e.g., by receiving a request from a consumable event staffthrough a consumable event staff device 106.

In some embodiments of the present invention, the queue manager 102utilises a dynamic slotted queue model to best provide agents with thecertainty of a precise starting time to consume a consumable event 105,which may not require or involve the agents pre-purchasing a consumableevent ticket for a specific time slot. In a dynamic slotted queue model,the system 100 allots consumable event consuming time slots on aschedule with a consistent interval from the moment a consumable event105 opens based on venue or consumable event ticket sales. Consumableevent consuming time slots are scheduled and opened up on a rollingbasis of a configurable period of time, e.g., 15 minutes, from when theevent opens and agents are automatically allocated a slot with a fixedstarting time. When a person first joins the virtual queue for theconsumable event 105 in the queueing application, the person mustexpress how many people are in their group. As entire groups of agentsare allocated consuming time slots as a whole, groups cannot be largerthan the event's maximum capacity or available space (which isconfigurable and vary per event). The system 100 may store agent groupdata in agent database 101 b and history database 101 c in order tomonitor and calculate the Agent Score of the group.

The dynamic slotted queue model is best described by way of non-limitingexamples, as shown in FIGS. 4A-4E.

FIG. 4A depicts dynamic slotted queue model 400 with a virtual queue forslotted queues 401, a plurality of agent groups 402, where each numberwithin the plurality of agents (1, 2, 1, 3, 4, 2, 2) represents thenumber of agents within that group and the front of the queue is therightmost number (2 in this case), and four consumable event time slotscorresponding to different times, 10:00 AM time slot 403, 10:15 AM timeslot 404, 10:30 AM time slot 405, and 10:45 time slot 406, where eachtime slot has a four agent capacity. The queue manager 102 picks agentgroup entries in the virtual queue one by one and tries to fit them intothe earliest slot that has enough space for the number of people in thebooking, subject to Agent Score and machine learning criteria discussedabove. In the agent group case, the queue manager 102 may calculate theAgent Score of one or more agents in order to determine if the agentgroup is ready to join the time slot. For example, one agent out of agroup of four agents may designate themselves to be the leader; in thiscase, the queue manager 102 would only calculate the Agent Score of theleader, with the understanding that the entire group would be ready toattend the consumable event 105 if the leader accepts a summon to theconsumable event 105.

Assuming the agent groups have no Agent Score issues or other factorsinterfering with their ability to attend the consumable event 105, FIG.4B depicts a scenario where the queue manager 102 takes the first twogroups of two agents 407 and allocates them to the 10:00 AM time slot403. Next, the group of four agents 408 is allocated to the 10:15 AMtime slot 404, thus occupying the entire time slot. Next, the next twoagent groups in the virtual queue, a group of 3 agents and a singleagent 409, are allocated to the 10:30 AM time slot 405. Finally, thelast two agent groups in the virtual queue, a group of 2 agents and asingle agent 410, are allocated to the 10:45 AM time slot 406.

The queue manager 102 tries to allocate agent group bookings to timeslots on a first-come first-serve basis, but there are cases where thequeue manager 102 will allocate agent groups who join the queue later toearlier time slots if there is available space. Again, assuming theagent groups have no Agent Score issues or other factors interferingwith their ability to attend the consumable event, FIG. 4C shows aplurality of agent groups 412 in the virtual queue 401 with a group ofthree agents, a group of two agents, and another group of three agentsat the first three positions of the virtual queue, each of which cannotbe in placed together in any of the time slots, thus they must each beallocated to different time slots.

In FIG. 4D, the first group of three agents 417 will be allocated the10:00 AM time slot 403, the group of two agents 418 will be allocatedthe 10:15 AM time slot 404, and the second group of three agents 419will be allocated the 10:30 AM time slot 405. From here, the queuemanager 102 fills the remaining spaces in time slots 403, 404, and 405with agent groups 413.

In FIG. 4E, a single agent joins the first group of three agents tobecome a fully allocated time slot 427 in the 10:00 AM time slot 403, asecond group of two agents joins the first group of two agents to becomea fully allocated time slot 428 in the 10:15 AM time slot 404, a secondsingle agent joins the second group of three agents to become a fullyallocated time slot 429 in the 10:30 AM time slot 405, and the remainingthird single agent 430 is allocated to the 10:45 time slot 406. In thiscase, even though some agent group were assigned to earlier time slotsthan other agent groups that had joined the virtual queue earlier, thequeue manager 102 strives to allocate each agent group to the bestpossible time slot. In this way, the queue manager 102 fills gaps wherepossible to allow each time slot to be as full as possible, which bothincreases the throughput of agents through a consumable event 105 andreduces a consumable event's queue wait time throughout the day.

In the dynamic slotted queue model, the queue manager 102 considers atime slot to be “possible” if, for an agent group, the number of freespaces in the time slot is greater than or equal to the number of agentsin the agent group. Thus, the queue manager 102 may first allocate agentgroups to time slots if the agent group is flagged with a prepaid ticketstatus, then allocate agent groups to open, non-cancelled slots bysummoning agent groups in a “waiting” state when there are possible opentime slots depending on when the agent group joined the virtual queueand the agent group's Agent Score. In scenarios where a consumable event105 has imminent time slots that have available space for agents, thequeue manager 102 may fill the remaining spaces by summoning proximateagents or agent groups to jump the virtual queue and join the physicalqueue, prioritising agents with a high Agent Score.

In some scenarios, upcoming consumable event time slots can be cancelledif a problem arises with a consumable event 105 that prevents theorderly and improved processing of agents through the queues. When timeslots are cancelled, a reshuffling process occurs where existing queueentries are deallocated from their current slots and then reallocated ona best-effort basis. For example, the queue manager 102 may inventoryand categorize agent groups in the virtual queue as either “prepaid” or“casual” groups, where prepaid agent group bookings are agent groupsthat have purchased tickets ahead of time for specific time slots andall other agent group booking are considered casual. The queue manager102 may then allocate all prepaid agent groups to the earliest possible,non-cancelled time slot that begins on or after the originally purchasedticket's time slot; in this case, all time slots for the rest of the dayare considered and not just time slots within the upcoming window. Thequeue manager 102 may then allocate casual agent groups to upcoming,open, possible, non-cancelled time slots, where agent groups that havepreviously been assigned earlier time slots are prioritised; any agentgroups which cannot be allocated in this step are left in a “waiting”state.

Through the systems and methods described above, the queue manager 102allows for a high degree of granularity in controlling consumable eventoperations that increases agent throughput through consumable events,increases consumable event and event space utilisation, decreasesconsumable event wait times, and decreases the time an agent loses toaccessing a consumable event 105. Because of the flexibility of thequeue manager 102 dynamically updating the virtual queue, the queuemanager 102 allows venues to increase footfall or foot traffic, such asgiving agents more opportunities to visit a gift store or café withinthe venue, which in turn translates into increased sales. For consumableevents 105 where tickets must be purchased, the queue manager 102 mayalso increase ticket sales as a result of the queue manager 102increasing agent throughput through consumable events 105 and increasingconvenience or comfort for agents with regard to their ability toconsume events in context of their other activities at a venue or venuesor throughout a day. Because the system 100 allows for adjustment ofconsumable event parameters such as agent flow rate and density, thequeue manager 102 may improve an agent's experience of the consumableevent 105 and venue 104 by giving the agent excellent conditions withwhich to experience the consumable event 105 in.

In some embodiments of the present invention, system 100 is able toprovide better agent experiences and increase consumable eventutilisation where consumable events 105 are widely distributed through avery large space, such as throughout a city. In these cases, consumableevents 105 may include one or more of multiple live art, music, andtheatrical performances, some of which may have dynamically variabletime lengths based in part on audience or agent interaction with theperformance. Consumable events 105 and their corresponding venues 104may reach maximum capacity at any point in time given that there may behighly variable rates of consumption for different types of agents, suchas gallery spaces that are moved through at different speeds bydifferent agents but have a fire marshal define occupancy limit or foodand beverage services wherein agents may opt to consume quickly orslowly. In each case, the queue manager or queue managers 102 factoreach agent's variable consumption of consumable events 105, the dynamicnature of different consumable event 105, various methods of transitingor moving between consumable events 105, the dynamic nature of thetransit times as externally influenced by other variables such asweather, traffic, or public transport, the dynamic nature of thedistribution of agents who accepted, cancelled, or postponed theirsummon to a consumable event 105, and any Agent Score or machinelearning factor discussed above to decide when and how the system willcommunicate with or summon agents.

In a non-limiting example, the queue manager 102 may consider arestaurant to be a consumable event 105 defined by tables, bars,counters, or other surfaces to consume food or drink on, with seats orstanding space. Unlike some consumable events 105 which may have fixedor fairly predictable consumption times, restaurants generally havefairly variable ranges of consumption times, i.e., the time it takes anagent or group of agents to finish their meal at the restaurant andleave. Queue manager 102 may calculate and learn expected agent andagent group restaurant, or other consumable event, consumption timesbased on when dishes or courses are served, preparation time forspecific dishes ordered, agent group size, venue crowdedness or density,and consumable event staffing levels, in order to determine when agentsare likely to finish consuming the consumable event and when agentsshould be summoned from the virtual queue to the consumable event, e.g.,their seats, table, or space at a restaurant. For example, if therestaurant or kitchen is understaffed, food and drinks may take longerto be prepared and served than usual, thus negatively impacting agentconsumption throughput in the restaurant and slowing consumption rates.In order to decrease the negative impact on the overall agentexperience, system 100 utilises this restaurant or consumable event 105data to better predict agent consumption times, when to summon agents tothe restaurant or consumable event, and other information provided toagents to decrease wait time wasted in physical queues.

Queue manager 102 may also adjust agent summon timing based on thesystem's location awareness of the agents, agent distance from therestaurant or other consumable event 105, agent expected transit timefrom their dynamically changing position back toward the restaurant,table, or other consumable event 105, and other factors discussed aboverelating to Agent Scores and machine learning of agent behaviour. Inthis way, a restaurant's or other consumable event's queue manager 102may factor the above variables in order increase agent consumption andutilisation of the restaurant space.

In another non-limiting example, in a venue with limited locationawareness functionality, the system 100 may still be utilised to reducephysical queue times and allow agents more free time. For example, iflocation beacons 108 or consumable event staff with mobile devices 106in communication with the system 100 are placed at consumable event 105entrances, the queue manager 102 gains data at a point near theconsumable events 105. By having data indicative of when agents areproximate to consumable events 105, the queue manager can assess thestatuses of the physical queues of consumable events 105 and summonproximate agents to consumable events 105 when vacancies open up inphysical queues due to agent cancellation, postponement, or expiry. Likein a venue with full or widespread location awareness functionality, thequeue manager 102 may calculate Agent Scores based on the factorsdiscussed above and summon additional agents or ramp down summoning ofagents in appropriate cases when the physical queue reaches anunsatisfactory state.

In FIG. 5 , in some embodiments of the present invention, a method formaintaining a virtual queue and summoning agents 500 is provided. Atstep 501, queue manager 102 creates a virtual queue when an agent'smobile device 103 indicates to the queue manager 102 via the queueingapplication running on the mobile device 103 that the person wishes tojoin the virtual queue for a consumable event 105 and maintains thevirtual queue by continuing to add agents sequentially to the virtualqueue. At step 502, as discussed above, the system 100 determines whento summon one or more agents to the consumable event 105 based on thedifferent ways the queue manager 102 monitors the agents. At step 503,the queue manager 102 summons one or more agents to the consumable event105.

In some embodiments of the present invention, the queue manager 102 maydetermine an opportune time to summon agents of a second class of agentsto perform actions based on the monitoring of agents of a first class ofagents and the monitoring of agents of the second class of agents. Insome example, the queue manager 102 may take into account the schedulesof one or more consumable events which may be at one or more differentvenues. Like the first class of agents, monitoring of the second classof agents includes monitoring any factor that goes into calculating theAgent Score of agents of the second class of agents or machine learningthe behaviour of agents of the second class of agents. The Agent Scoreof agents of the second class of agents may be calculated or updatedupon detection of a relevant consumable event beginning or ending, suchas a golf lesson starting or a theatre letting out that needs to becleaned before the next show begins.

In a non-limiting example of the queue manager 102 determining anopportune time to summon agents of a second class of agents to performactions, the system 100 considers a large resort scenario where thelarge resort may be a venue 104 with one or more consumable events 105that provides vehicle transits (agents of the second class of agents),e.g. buses or other forms of transportation vehicles, to and from eachconsumable event 105 and one or more consumable events 105 external tothe venue 104. In this case, the Agent Score of a bus (whetherself-driving or human operated) would refer to the likelihood of the busarriving at an agent of the first class of agents pick up locationwithin a period of time. In order to increase the throughput of agentsof the first class of agents through the consumable events 105, eitherin or external to the venue 104, the experience and satisfaction of theagents of the first class of agents, consumable event utilisation, anddecreasing or eliminating agent time loss when accessing the consumableevent 105, the queue manager 102 may account for a number of vehiclerelated factors. In this example, the queue manager 102 may treat eithera bus driver or the bus as the agent.

For example, the queue manager 102 may dynamically alter thedistribution, frequency, rate of movement, and loiter time of a transitvehicle at one or more stops of the transit vehicle, while alsopotentially adjusting parameters of consumption for consumable events105, such as decreasing a parasailing time slot from 45 minutes to 30minutes, based on the rate of consumption of the consumable events,agent group sizes of the first class of agents, vehicle utilisation, thenumber and nature of agents of the first class of agents that haveindicated a desire to consume one or more consumable events, and anyother factor that goes into calculating the Agent Score of agents of thefirst class of agents or machine learning the behaviour of agents of thefirst class of agents. In a large resort scenario, the queue manager 102of the large resort venue may communicate with other queue managers 102of systems 100 for different venues 104 where consumable events 105external to the large resort venue 104 are hosted in order to increasethe throughput of agents of the first class of agents through consumableevents 105, agent of the first class of agents satisfaction andexperience, consumable event utilisation, and decrease agent time losswhen accessing the consumable event 105.

FIG. 6 reduces the above example into a method and depicts the methodfor maintaining a virtual queue for a plurality of a first class ofagents, monitoring the plurality of the first class of agents,monitoring a plurality of a second class of agents, and dynamicallydetermining when to instruct one or more agents of the plurality of thesecond class of agents to perform one or more actions related to theconsumable event 600. At step 601, queue manager 102 creates one or morevirtual queues when an agent of a first class of agent's mobile device103 indicates to the system 100 via a queue application running on themobile device 103 that the person wishes to join the virtual queue for afirst consumable event 105 and maintains the virtual queue by continuingto add agents of the plurality of the first class of agents sequentiallyto the virtual queue. At step 602, as discussed above, the queue manager102 communicates with a plurality of mobile devices, each mobile deviceassociated with an agent of the plurality of the first class of agents,in order to monitor the plurality of the first class of agents. At step603, also discussed above, the queue manager 102 communicates with eachof a plurality of a second class of agents, in order to monitor theplurality of the second class of agents. At step 604, the queue manager102 dynamically determines when to instruct one or more agents of theplurality of the second class of agents to perform one or more actionsrelated to the consumable event, such as a transporting the one or moreagents of the plurality of the first class of agents to a consumableevent or venue, based on the different ways the queue manager 102monitors the first class of agents and the different ways the queuemanager 102 monitors the second class of agents.

In another non-limiting example of the queue manager 102 determining aconvenient time to summon agents of a second class of agents to performactions that further expands on the cleaning robot example discussedabove, the system 100 may dynamically adjust how cleaning robots performtheir cleaning tasks. In addition to the queue manager 102 being sent anupdate from the consumable event 105 when agents suddenly leave ordepart from a consumable event 105 unexpectedly early, the system 100may receive data defining consumable event space utilisation schedulefrom the consumable event 105 or venue 104 of how a consumable eventspace will next be used and may summon cleaning robots to Improve theircleaning routines by dynamically adjusting how the robots perform. Forexample, the queue manager 102 may have the cleaning robots performquick cleans rather than extended thorough cleans or vice versa giventhe time availability for utilising a consumable event space and thenumber of available robots. The queue manager 102 may determine whichrobots are summoned and how the robots interact with one another or areallocated to the available consumable event space. The queue manager 102may also track what the cleaning robots were doing before beingsummoned, such as if a robot was actively completing another task, whatsort of task the robot was doing, and how far along the task the robotwas, and how long the cleaning robots would take to transit from itscurrent location to the consumable event space. The queue manager 102may consider the dynamic nature of these variables as robot transit timeis impacted by other agent or traffic of people who are not queued for aconsumable event and the time to complete a cleaning task may beimpacted by the changes to the physical layout of consumable event 105or event or activity that does not require queueing for space, e.g., thedistribution of tables and chairs and the mess created as a result of awedding with 100 guests is different from that of a wedding with 200guests.

FIG. 7 reduces the above example into a method and depicts the methodfor maintaining a virtual queue for a plurality of a first class ofagents, monitoring the plurality of the first class of agents,monitoring a plurality of a second class of agents for performing anaction related to the consumable event, and dynamically determining whento summon one or more agents of the plurality of the second class ofagents to the consumable event 700. At step 701, the queue manager 102creates a virtual queue when an agent's mobile device 103 indicates tothe system 100 via a queue application running on the mobile device 103that the person wishes to join the virtual queue for a consumable event105 and maintains the virtual queue by continuing to add agentssequentially to the virtual queue. At step 702, the queue managercommunities with a plurality of mobile devices, each associated with anagent of the plurality of the first class of agents, in order to monitorthe plurality of the first class of agents. At step 703, also discussedabove, the queue manager 102 communicates with each of a plurality of asecond class of agents, in order to monitor the plurality of the secondclass of agents, where the second class of agents are for performing anaction related to the consumable event. At step 704, the queue manager102 dynamically determines when to summon one or more agents of theplurality of the second class of agents to the consumable event based onthe different ways the queue manager 102 monitors the first class ofagents, the different ways the queue manager 102 monitors the secondclass of agents.

Example

A prototype implementation of an embodiment of system 100 was trialed inrespect of an exhibit at a museum and resulted in significant decreasesin physical queue wait times. The trial was implemented in respect of anexhibit where only two people were permitted to enter the exhibit at atime. Entry to the exhibit was near the entrance to the museum and wascontrolled by an event staff member. People typically took 3-5 minutesinside the exhibit before exiting the exhibit. Prior to trialing thesystem, average wait times for the physical queue to the exhibit weremeasured and it was determined that the physical queue to see theexhibit had an average wait time of 26 minutes and a wait time in excessof 45 minutes during peak hours.

During the trial, people downloaded the queueing application onto theirown mobile devices or were provided a device with the queueingapplication preloaded onto it. People were monitored using locationbeacons located at the exhibit and at different locations throughout themuseum, as well as via Wi-Fi available throughout. The queueingapplication calculated when to summon agents to the exhibit based onagent activity and interactions with their mobile devices, agentpreferences, agent location and movement data, and the rates at whichagents moved through the exhibit.

After trialing the system 100 over a period of time, the average waittime in the physical queue dropped to 6.21 minutes. Over the course ofthe trial period, the system 100 served 14,242 people and saved 5,395hours of people waiting in the physical queue relative to the prioraverage, when time saved was measured from the time an agent joined thevirtual queue to the time the agent was summoned to the exhibit.

In one example embodiment, there is provided a method, the methodcomprising:

maintaining, by a queue manager, a virtual queue, in a memory, for aconsumable event, the virtual queue defining a current order of aplurality of agents; communicating, by the queue manager, with aplurality of mobile devices, each mobile device of the plurality ofmobile devices associated with an agent of the plurality of agents, inorder to monitor the associated agent; and dynamically determining, bythe queue manager when to summon one or more agents of the plurality ofagents in the virtual queue to the consumable event based on themonitoring of the plurality of agents.

In another example embodiment, there is provided a method, the methodcomprising:

maintaining, by a queue manager, a virtual queue, in a memory, for aconsumable event, the virtual queue defining a current order of aplurality of a first class of agents;

communicating, by the queue manager, with a plurality of mobile devices,each mobile device of the plurality of mobile devices associated with anagent of the plurality of the first class of agents, in order to monitorthe plurality of the first class of agents;

communicating, by the queue manager, with each agent of a plurality of asecond class of agents in order to monitor the plurality of the secondclass of agents; and

dynamically determining, by the queue manager, when to instruct one ormore agents of the plurality of the second class of agents to performone or more actions related to the consumable event based on themonitoring of the plurality of the first class of agents and themonitoring of the plurality of the second class of agents.

In yet another example embodiment, there is provided a method, themethod comprising:

maintaining, by a queue manager, a virtual queue, in a memory, for aconsumable event, the virtual queue defining a current order of aplurality of a first class of agents;

communicating, by the queue manager, with a plurality of mobile devices,each mobile device of the plurality of mobile devices associated with anagent of the plurality of the first class of agents, in order to monitorthe plurality of the first class of agents;

communicating, by the queue manager, with each agent of a plurality of asecond class of agents in order to monitor the plurality of the secondclass of agents, the second class of agents being for performing anaction related to the consumable event; and

dynamically determining, by the queue manager, when to summon one ormore agents of the plurality of the second class of agents to theconsumable event based on the monitoring of the plurality of the firstclass of agents and the monitoring of the plurality of the second classof agents.

In the claims which follow and in the preceding description of theinvention, except where the context requires otherwise due to expresslanguage or necessary implication, the word “comprise” or variationssuch as “comprises” or “comprising” is used in an inclusive sense, i.e.to specify the presence of the stated features but not to preclude thepresence or addition of further features in various embodiments of theinvention.

1. A system comprising: a memory; and a queue manager that maintains avirtual queue in the memory for a consumable event, the virtual queuedefining a current order of a plurality of a first class of agents forthe consumable event, the queue manager configured to summon one or moreagents of the plurality of the first class of agents to the consumableevent, and output an instruction to one or more agents of a plurality ofa second class of agents configured to perform one or more actionsrelated to the consumable event, wherein the queue manager is configuredto communicate with a plurality of mobile devices, each mobile device ofthe plurality of mobile devices associated with an agent of theplurality of the first class of agents and to communicate with theplurality of the second class of agents, wherein the queue managercommunicates with each mobile device in order to monitor the associatedagent of the plurality of the first class of agents and the queuemanager communicates with each agent of the plurality of the secondclass of agents in order to monitor the plurality of the second class ofagents, wherein the queue manager is configured to dynamically determinewhen to output an instruction to one or more agents of the plurality ofthe second class of agents to perform the one or more actions based onthe monitoring of the plurality of the first class of agents and themonitoring of the plurality of the second class of agents.
 2. The systemof claim 2, wherein the one or more actions the queue manager instructsthe one or more agents of the plurality of the second class of agents toperform comprises transporting the one or more agents of the pluralityof the first class of agents to at least one of the one or moreconsumable events.
 3. A system comprising: a memory; and a queue managerthat maintains a virtual queue in the memory for a consumable event, thevirtual queue defining a current order of a plurality of a first classof agents, the queue manager configured to summon one or more agents ofthe plurality of the first class of agents to the consumable event, andsummon one or more agents of a plurality of a second class of agents tothe consumable event, the second class of agents being configured forperforming an action related to the consumable event, wherein the queuemanager is configured to communicate with a plurality of mobile devices,each mobile device of the plurality of mobile devices associated with anagent of the plurality of the first class of agents and to communicatewith the plurality of the second class of agents, wherein the queuemanager communicates with each mobile device in order to monitor theassociated agent of the plurality of the first class of agents and thequeue manager communicates with each agent of the plurality of thesecond class of agents in order to monitor the plurality of the secondclass of agents, wherein the queue manager is configured to dynamicallydetermine when to summon one or more agents of the plurality of thesecond class of agents to the consumable event based on the monitoringof the plurality of the first class of agents and the monitoring of theplurality of the second class of agents.
 4. The system of claim 3,wherein the one or more agents of the plurality of the second class ofagents being configured for performing an action related to theconsumable event comprises performing at least a cleaning action.
 5. Thesystem of claim 3, wherein the queue manager is configured todynamically determine when to summon one or more agents of the pluralityof the second class of agents to the consumable event based on aschedule of the consumable event.
 6. A method for summoning one or moreagents of a plurality of a first class of agents to a consumable eventand outputting an instruction to one or more agents of a plurality of asecond class of agents configured to perform one or more actions relatedto the consumable event, comprising: maintaining a virtual queue in amemory, the virtual queue defining a current order of the plurality ofthe first class of agents for the consumable event; summoning one ormore agents of the plurality of the first class of agents to theconsumable event by communicating with a plurality of mobile devices,each mobile device of the plurality of mobile devices associated with anagent of the plurality of the first class of agents; and outputting aninstruction to the one or more agents of the plurality of a second classof agents configured to perform one or more actions related to theconsumable event, wherein the method further comprises: communicatingwith each mobile device in order to monitor the associated agent of theplurality of the first class of agents and communicating with each agentof the plurality of the second class of agents in order to monitor theplurality of the second class of agents; and dynamically determiningwhen to output the instruction to one or more agents of the plurality ofthe second class of agents to perform the one or more actions based onthe monitoring of the plurality of the first class of agents and themonitoring of the plurality of the second class of agents.
 7. A methodfor summoning one or more agents of a plurality of a first class ofagents to a consumable event and summoning one or more agents of aplurality of a second class of agents to the consumable event, thesecond class of agents being configured for performing an action relatedto the consumable event, comprising: maintaining a virtual queue in thememory, the virtual queue defining a current order of a plurality of afirst class of agents for the consumable event; communicating with aplurality of mobile devices, each mobile device of the plurality ofmobile devices associated with an agent of the plurality of the firstclass of agents, in order to monitor the associated agent of theplurality of the first class of agents; communicating with the pluralityof the second class of agents in order to monitor the plurality of thesecond class of agents; summoning one or more agents of the plurality ofthe first class of agents to the consumable event by communicating witha plurality of mobile devices, each mobile device of the plurality ofmobile devices associated with an agent of the plurality of the firstclass of agents; dynamically determining when to summon one or moreagents of the plurality of the second class of agents to the consumableevent based on the monitoring of the plurality of the first class ofagents and the monitoring of the plurality of the second class ofagents; and in response, summoning the determined one or more agents ofthe plurality of the second class of agents to the consumable event.